SHYSTER is a case-based legal expert system. SHYSTER is implemented using a dozen modules, written in ISO C. This report provides complete code listings of all twelve modules. (Full details of the design, implementation, operation and testing of SHYSTER are given elsewhere.) SHYSTER's advice is based upon an examination of, and an argument about, the similarities and differences between cases. SHYSTER attempts to model the way in which lawyers argue with cases, but it does not attempt to model the way in which lawyers decide which cases to use in those arguments. Instead, it employs statistical techniques to quantify the similarity between cases. It decides which cases to use in argument, and what prediction it will make, on the basis of that similarity measure. The Shyster module (§1) is the top-level module for the whole system. The Statutes module (§2) is the top-level module for a rule-based system, presently unimplemented. The Cases module (§3) is the top-level module for the case-based system. The Tokenizer and Parser modules (§4 and §5) tokenize and parse a program written in SHYSTER’s case law specification language. The Dumper module (§6) displays the information that has been parsed. The Checker module (§7) checks for evidence of dependence between the attributes. The Scales module (§8) determines the weight of each attribute. The Adjuster module (§9) allows the legal expert to adjust the weights of the attributes. The Consultant module (§10) interrogates the user as to the attribute values in the instant case. The Odometer module (§11) determines the distances between the leading cases and the instant case, and the Reporter module (§12) writes SHYSTER’s legal opinion.
Technical Report TR-CS-93-13, Department of Computer Science, Faculty of Engineering and Information Technology, The Australian National University, Canberra, December 1993 (revised April 1995), iv + 237 pp.